package com.zelin.listener;

import com.alibaba.fastjson.JSON;
import com.aliyuncs.exceptions.ClientException;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import util.SmsUtil;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by WF on 2020/4/2 15:57
 * 这个监听器有两个作用：
 * 1、接受控制器发来的验证码及手机号消息。
 * 2、向阿里大于发送消息。
 */
@Component
@RabbitListener(queues = "sms")
public class MySmsListener {
    @Autowired
    private SmsUtil smsUtil;
    //1.接受发来的手机号及验证码信息
    @RabbitHandler
    public void getMessage(Map<String,String> map){
        try {
            //1.1)得到消息后给阿里大于发送消息
            //① 手机号
            String mobile = map.get("mobile");
            //② 模板号
            String template_code = "SMS_148593167";
            //③ 签名
            String sign_name = "品优购";
            //④ 参数
            Map<String,String> paramMap = new HashMap<>();
            paramMap.put("code",map.get("code"));
            //转换map为字符串
            String param = JSON.toJSONString(paramMap);
            //使用阿里大于发送消息出去
            smsUtil.sendSms(mobile,template_code,sign_name,param);
            System.out.println("消息发送成功！");
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}
